応用情報技術者 PR

【応用情報技術者】フラグメンテーションとは何か

記事内に商品プロモーションを含む場合があります

●フラグメンテーションとは
記憶領域の空き領域がバラバラに分断されてしまう現象。

出題された回(平成29年度春期以降)
令和4年度春期

フラグメンテーションの説明

フラグメンテーションとは、記憶領域の空き領域がバラバラに分断されてしまう現象です。

データの保存と削除を繰り返すと、記憶領域の空き領域が細切れに発生してしまいます。

ここに、それぞれの空き領域よりも容量が大きいデータFを保存する時、
データFを分割して保存しなくてはいけなくなります。

データを分割して保存すると、記憶領域からデータを取得するときに時間が掛かります。

また、そもそも分割出来ないデータを保存する場合、全体で見ると十分な空き領域があったとしても、その空き領域が細切れに存在するために保存できないといった状態にもなってしまいます。

過去問

応用情報技術者 午前試験
令和4年度春期問18

フラグメンテーションに関する記述のうち、適切なものはどれか。

ア 可変長ブロックのメモリプール管理方式では、様々な大きさのメモリ領域の獲得や返却を行ってもフラグメンテーションは発生しない。

イ 固定長ブロックのメモリプール管理方式では、可変長ブロックのメモリプール管理方式よりもメモリ領域の獲得と返却を速く行えるが、フラグメンテーションが発生しやすい。

ウ フラグメンテーションの発生によって、合計としては十分な空きメモリ領域があるにもかかわらず、必要とするメモリ領域を獲得できなくなることがある。

エ メモリ領域の獲得と返却の頻度が高いシステムでは、フラグメンテーションの発生を防止するため、メモリ領域が返却されるたびにガーベジコレクションを行う必要がある。

正解と解説

正解は”ウ”
フラグメンテーションの発生によって、十分な空きメモリ領域があったとしても保存できないことがあります。よって、”ウ”が正解です。

ア:可変長ということは、保存するデータを割り当てる領域の大きさがバラバラということなので、フラグメンテーションは発生してしまいます。よって、誤りです。
イ:固定長ということは、保存するデータの大きさによらず、データを割り当てる領域の大きさは同じということなので、フラグメンテーションは発生しません。よって、誤りです。
エ:ガベージコレクションは不要になったデータを解放して空き領域を作る処理です。なので、フラグメンテーションの発生防止とは関係ありません。よって、誤りです。